package other;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

import regexInput.NFAtoDFA;


public class Tester {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		ArrayList<ArrayList<ArrayList<String>>> nfa = new ArrayList<ArrayList<ArrayList<String>>>();
		nfa.add(new ArrayList<ArrayList<String>>());
		nfa.get(0).add(new ArrayList<String>());
		nfa.get(0).get(0).add("-1");
		nfa.get(0).add(new ArrayList<String>());
		nfa.get(0).get(1).add("0");
		nfa.get(0).add(new ArrayList<String>());
		nfa.get(0).get(2).add("1");
		nfa.get(0).add(new ArrayList<String>());
		nfa.get(0).get(3).add("Epislon");

		
		nfa.add(new ArrayList<ArrayList<String>>());
		nfa.get(1).add(new ArrayList<String>());
		nfa.get(1).get(0).add("State1");
		nfa.get(1).add(new ArrayList<String>());
		nfa.get(1).get(1).add("1");
		nfa.get(1).add(new ArrayList<String>());
		nfa.get(1).get(2).add("1");
		nfa.get(1).get(2).add("2");
		nfa.get(1).add(new ArrayList<String>());
		nfa.get(1).get(3).add("1");
		
		nfa.add(new ArrayList<ArrayList<String>>());
		nfa.get(2).add(new ArrayList<String>());
		nfa.get(2).get(0).add("State2");
		nfa.get(2).add(new ArrayList<String>());
		nfa.get(2).get(1).add("3");
		nfa.get(2).add(new ArrayList<String>());
		nfa.get(2).get(2).add("2");
		nfa.get(2).add(new ArrayList<String>());
		nfa.get(2).get(3).add("2");
		
		nfa.add(new ArrayList<ArrayList<String>>());
		nfa.get(3).add(new ArrayList<String>());
		nfa.get(3).get(0).add("State3");
		nfa.get(3).add(new ArrayList<String>());
		nfa.get(3).get(1).add("1");
		nfa.get(3).add(new ArrayList<String>());
		nfa.get(3).get(2).add("4");
		nfa.get(3).add(new ArrayList<String>());
		nfa.get(3).get(3).add("3");
		
		nfa.add(new ArrayList<ArrayList<String>>());
		nfa.get(4).add(new ArrayList<String>());
		nfa.get(4).get(0).add("State4");
		nfa.get(4).add(new ArrayList<String>());
		nfa.get(4).get(1).add("4");
		nfa.get(4).add(new ArrayList<String>());
		nfa.get(4).get(2).add("4");
		nfa.get(4).add(new ArrayList<String>());
		nfa.get(4).get(3).add("4");
		
	//	NFAtoDFA trans = new NFAtoDFA(nfa, new ArrayList<String>());
	//	System.out.println(trans.toString());
		
		/**	JFileChooser opt = new JFileChooser();
		opt.showDialog(null, "Open Target File To Run On");				// Sample Input in the same folder as src, you can move it to My Documents folder or change the directory in the code.
		//Scanner s = new Scanner(opt.getSelectedFile().getAbsolutePath()); // <--
		RecursiveScan s = new RecursiveScan(opt.getSelectedFile().getAbsolutePath()); // <--
		NFABuilder builder = new NFABuilder(s.struct.getCharClass());
		builder.buildNFA("$SMALLCASE|$LETTER|$DIGIT$MISC");
		System.out.println(builder.toString());
		// TODO Auto-generated method stub
	*/	/*
		FileWriter writer;
	    JFileChooser opt = new JFileChooser();
		opt.showDialog(null, "Open Target File To Run On");
		JOptionPane.showMessageDialog(null, "Program running, it might take awhile.");
		Scanner s = new Scanner(opt.getSelectedFile().getAbsolutePath());
		try {
		      writer = new FileWriter("PeterDengHW1.txt");
		      String list = s.printList();
		      String data = s.getData();
		      String scopeData = s.getScopeData();
		      writer.write(list);
		      writer.write(data);
		      writer.write(scopeData);
		      writer.close();
		    } catch (IOException e) {
		    JOptionPane.showMessageDialog(null, "Something went wrong. Try again.");
		    }
		JOptionPane.showMessageDialog(null, "Done.");
		*/
	}
}
